845bc00381fad92bdd8b9575c2a19b1b9f9c2a98,jdt-patch/e43/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/ast/MemberValuePair.java,MemberValuePair,repairClassLiteralReference,#Expression#BlockScope#TypeBinding[]#,82

Before Change


	private Expression repairClassLiteralReference(Expression exp, BlockScope scope, TypeBinding[] valueType) {
		TypeBinding vtb = null;
		if (exp instanceof SingleNameReference) {
			vtb = exp.resolveType(scope);
			SingleNameReference ref = (SingleNameReference) exp;
			if (vtb != null && Arrays.equals(ref.token, vtb.sourceName())) {
				return new ClassLiteralAccess(ref.sourceEnd, new SingleTypeReference(ref.token, ((long) ref.sourceStart) << 32 | ref.sourceEnd));
			}
		} else if (this.value instanceof QualifiedNameReference) {
			vtb = exp.resolveType(scope);
			QualifiedNameReference ref = (QualifiedNameReference) exp;
			if (vtb != null && Arrays.equals(ref.tokens[ref.tokens.length - 1], vtb.sourceName())) {
				return new ClassLiteralAccess(ref.sourceEnd, new QualifiedTypeReference(ref.tokens, ref.sourcePositions));
			}
		}
		if (valueType != null) {

After Change



	private static Expression repairClassLiteralReference(Expression exp, BlockScope scope) {
		if (exp instanceof SingleNameReference) {
			if (exp.resolveType(scope) != null) {
			SingleNameReference ref = (SingleNameReference) exp;
				return new ClassLiteralAccess(ref.sourceEnd, new SingleTypeReference(ref.token, ((long) ref.sourceStart) << 32 | ref.sourceEnd));
			}
		} else if (exp instanceof QualifiedNameReference) {
			if (exp.resolveType(scope) != null) {
			QualifiedNameReference ref = (QualifiedNameReference) exp;
				return new ClassLiteralAccess(ref.sourceEnd, new QualifiedTypeReference(ref.tokens, ref.sourcePositions));
			}
		}
		return exp;